﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.ObjectBuilder;
using GC2.Bussines.BMSeguridad;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;
using GC2.Entities.Admin;
public partial class Admin_BuscarCliente: GenericPage
{

    #region Propiedades
    Usuarios usuario = new Usuarios();
    private List<Clientes> listaClientes
    {
        get
        {
            return (List<Clientes>)Session["listaClientes"];
        }
        set
        {
            Session["listaClientes"] = value;
        }
    }

    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                string strOkEvent = ClientScript.GetPostBackEventReference(gvClientes, string.Empty);
                gvClientes.Attributes.Add("gvClientes_SelectedIndexChanged", strOkEvent);

                llenarControlesDeQueryString();
                List<Clientes> listaConceptos = new List<Clientes>();

                if (Session["Remitos"] != null)
                {
                    gvClientes.Columns[3].Visible = true;
                }
                else
                {
                    gvClientes.Columns[3].Visible = false;
                }

                //llenar este objeto con los datos del cliente a filtrar

                registrarScript();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion..

    #region btnBuscar_Click
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_PageIndexChanging
    protected void gvClientes_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvClientes.PageIndex = e.NewPageIndex;
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_SelectedIndexChanged
    protected void gvClientes_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            // Evento manejado por Java.
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvClientes_RowDataBound
    protected void gvClientes_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
           
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion  

    #endregion

    #region Metodos

    #region llenarControlesDeQueryString
    private void llenarControlesDeQueryString()
    {
        try
        {
            if (Request.QueryString["IdCliente"] != null)
            {
                txtIdCliente.Text = Request.QueryString["IdCliente"].ToString();
            }
            if (Request.QueryString["Nombre"] != null)
            {
                txtCliente.Text = Request.QueryString["Cliente"].ToString();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region registrarScript
    private void registrarScript()
    {
        try
        {
            if (Session["Remitos"] != null)
            {
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClienteScript",
                @"
                <script language=""javascript"" type=""text/javascript"">
                <!--
                function returnvalue(IdCliente, Cliente, Saldo, Direccion)
                {
                    var vIdCliente = document.getElementById(IdCliente);
                    var vCliente = document.getElementById(Cliente);
                    var vSaldo = document.getElementById(Saldo);
                    var vDireccion = document.getElementById(Direccion);

                    //para cuando el PopUP fue llamado de una pagina con MasterPage
                    if(window.opener.aspnetForm != null)
                    {
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdCliente != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdCliente.value = vIdCliente.innerHTML;
                        }
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtCliente != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtCliente.value = vCliente.innerHTML;
                        }
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo.value = vSaldo.innerHTML;
                        }
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtDireccion != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtDireccion.value = vDireccion.innerHTML;
                        }                  
                    }
                    window.close();
                }
                //-->   
                </script>
                ");
            }
            else
            {

                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClienteScript",
                @"
                <script language=""javascript"" type=""text/javascript"">
                <!--
                function returnvalue(IdCliente, Cliente, Saldo, Direccion)
                {
                    var vIdCliente = document.getElementById(IdCliente);
                    var vCliente = document.getElementById(Cliente);
                    var vSaldo = document.getElementById(Saldo);

                    //para cuando el PopUP fue llamado de una pagina con MasterPage
                    if(window.opener.aspnetForm != null)
                    {
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdCliente != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdCliente.value = vIdCliente.innerHTML;
                        }
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtCliente != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtCliente.value = vCliente.innerHTML;
                        }
                        if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo != null)
                        {
                            window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo.value = vSaldo.innerHTML;
                        }                  
                    }
                    window.close();
                }
                //-->   
                </script>
                ");
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gridDataBaund
    private void gridDataBaund()
    {
        try
        {
            listaClientes = (List<Clientes>)Session["listaClientes"];
            Clientes cliente = new Clientes();
            bool bEncontrado = false;
            if (txtIdCliente.Text != "")
            {
                cliente.Id_Cliente = Convert.ToInt16(txtIdCliente.Text.Trim());
                foreach (Clientes oCliente in listaClientes)
                {
                    if (cliente.Id_Cliente == oCliente.Id_Cliente)
                    {
                        cliente.Nombre = oCliente.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (txtCliente.Text != "")
            {
                cliente.Nombre = txtCliente.Text.Trim();
                foreach (Clientes oCliente in listaClientes)
                {
                    if (cliente.Nombre == oCliente.Nombre)
                    {
                        cliente.Nombre = oCliente.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (bEncontrado)
            {
                List<Clientes> listTemp = new List<Clientes>();
                listTemp.Add(cliente);
                gvClientes.DataSource = listTemp;
            }
            else
            {
                cliente.Nombre = txtCliente.Text;
                BMClientes bmClientes = new BMClientes(Connection);
                listaClientes = bmClientes.BMClientesSearch(cliente);
                gvClientes.DataSource = listaClientes;
            }
            if (Session["Remitos"] != null)
            {
                gvClientes.Columns[4].Visible = true;
            }
            gvClientes.DataBind();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion  

    #endregion
}
